//package com.aivin.lib_login.adapter;
//
//import android.content.Context;
//import android.graphics.BitmapFactory;
//import android.graphics.drawable.Drawable;
//import android.view.ViewGroup;
//
//import androidx.annotation.NonNull;
//import androidx.annotation.Nullable;
//
//import com.aivin.lib_base.tool.MyDeviceInforHelper;
//import com.aivin.lib_base.tool.WkLog;
//import com.aivin.lib_login.R;
//import com.aivin.lib_login.bean.PicBean;
//import com.aivin.lib_login.ui.MyImageView;
//import com.bumptech.glide.Glide;
//import com.bumptech.glide.load.DataSource;
//import com.bumptech.glide.load.engine.GlideException;
//import com.bumptech.glide.request.RequestListener;
//import com.bumptech.glide.request.target.CustomTarget;
//import com.bumptech.glide.request.target.Target;
//import com.bumptech.glide.request.transition.Transition;
//import com.zhy.adapter.recyclerview.MultiItemTypeAdapter;
//import com.zhy.adapter.recyclerview.base.ItemViewDelegate;
//import com.zhy.adapter.recyclerview.base.ViewHolder;
//
//import java.util.ArrayList;
//import java.util.List;
//
//
//public class FlowAdapter1 extends MultiItemTypeAdapter<PicBean> {
//
//    private int columnCount ;
//    private Context context ;
//    public FlowAdapter1(Context context ,List<PicBean> datas, int columnCount , PicAdapter.PicSelectCallBack selectCallBack) {
//
//        super(context, datas);
//
//        this.context =context ;
//        if(datas==null){
//            datas =new ArrayList<>();
//        }
//        this.datas = datas;
//        this.columnCount = columnCount;
//
//
//        addItemViewDelegate(1, new ItemViewDelegate<PicBean>() {
//            @Override
//            public int getItemViewLayoutId() {
//                return R.layout.video_item;
//            }
//
//            @Override
//            public boolean isForViewType(PicBean item, int position) {
//                return true;
//            }
//
//            @Override
//            public void convert(ViewHolder holder, PicBean flowModel, final int position) {
//                final MyImageView imageView =  holder.getView(R.id.picShowIv);
//
//                int width = (MyDeviceInforHelper.getScreenWidth(context)/columnCount) ;
//                float scalK =  flowModel.getScale()==-1 ? 1:  flowModel.getScale() ;
//                int height = (int) ( width / scalK);
//                imageView.setInitSize(width,height);
//
//                Glide.with(context).load(flowModel.getPicUrl()).into(imageView);
//            }
//        });
//    }
//
//    //提供给外部调用的方法 刷新数据
//    public void updateData(List<PicBean> pageData) {
//        updateImageScale(pageData);
////        datas.addAll(pageData) ;
////        notifyDataSetChanged();
//    }
//
//
//    private int updatedCount = -1 ;
//    private int needUpdateCount = 0 ;
//    private void updateImageScale(List<PicBean> pageData) {
//        if(pageData==null){
//            return;
//        }
//        needUpdateCount = pageData.size() ;
//        updatedCount =0 ;
//        WkLog.showLog("updateImageScale 图片长宽 开始更新 ....=="+ pageData.size() );
//        for ( PicBean picBean : pageData) {
//            loadPic2GetScale(picBean ,pageData);
//        }
//        notifyDataSetChanged();
//        WkLog.showLog("updateImageScale 图片长宽更新完毕....==" );
//    }
//    private void loadPic2GetScale(PicBean picBean ,List<PicBean> pageData){
//        WkLog.showLog("updateImageScale 更新中 ....==" );
//
//        if(picBean.isUpdated()){
//            WkLog.showLog("updateImageScale 更新中, 无需更新=="+picBean.getScale() );
//            showUpdateProgress("无需更新" ,pageData);
//            return;
//        }
//
//        Glide.with(context)
//                .load(picBean.getPicUrl())
//                .listener(new RequestListener<Drawable>() {
//                    @Override
//                    public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
//                        showUpdateProgress("下载失败 "+ e.getMessage()+"  "+picBean.getPicUrl()  ,pageData);
//                        picBean.setUpdated(true);
//                        return false;
//                    }
//
//                    @Override
//                    public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
//                        return false;
//                    }
//                })
//                .into(new CustomTarget<Drawable>() {
//                    @Override
//                    public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
//                        float scale = resource.getIntrinsicWidth() / (float) resource.getIntrinsicHeight();
//                        picBean.setScale(scale); // k = w / h
//                        picBean.setUpdated(true);
//
//                        showUpdateProgress("更新成功"  ,pageData);
//                    }
//
//                    @Override
//                    public void onLoadCleared(@Nullable Drawable placeholder) {
//
//                    }
//                });
//    }
//
//    private List<PicBean> datas;
//    private void showUpdateProgress(String tag ,List<PicBean> pageData){
//        updatedCount++ ;
//        WkLog.showLog("更新进度="+ updatedCount+"  /"+ needUpdateCount +"  "+tag);
//
//        if(updatedCount>= needUpdateCount){
//            WkLog.showLog("更新进度= 更新完成。" );
//            datas.addAll(pageData) ;
//            notifyDataSetChanged();
//        }
//    }
//    private boolean hasMoreData = true ;
//    public void setHasMoreData(boolean hasMoreData) {
//        this.hasMoreData = hasMoreData;
//        notifyDataSetChanged();
//    }
//}
